﻿// See https://aka.ms/new-console-template for more information
using JGSY.Tasks;
using System.Runtime.InteropServices;
using System.Threading.Tasks;

Console.WriteLine("Hello, World!");
//| 工具                        | 适用场景                          | 特点                               |
//| ----------------------------| ----------------------------------| -----------------------------------|
//| **Thread * *                | 需要精细控制线程生命周期          | 手动管理，资源开销大               |
//| **ThreadPool * *            | 短时后台任务                      | 自动复用线程，无法控制优先级       |
//| **Task * *                  | 异步操作 / 返回结果               | 基于线程池，支持链式调用           |
//| **async / await **          | IO密集型异步操作                  | 非阻塞，基于Task                   |
//| **Parallel * *              | 数据并行计算                      | 自动分配任务到多个线程             |
//| **CancellationToken * *     | 协作式取消                        | 统一取消多个操作                   |
//| **ManualResetEvent **       | 线程间信号通知                    | 手动控制信号状态                   |
//| **SemaphoreSlim * *         | 限制并发访问数量                  | 异步友好，支持跨线程协调           |
//| **Monitor * *               | 简单临界区保护                    | `lock`关键字的底层实现             |
//| **Mutex * *                 | 跨进程同步                        | 系统级锁，性能较低                 |
//| **Interlocked * *           | 原子操作                          | 无锁编程，高性能                   |

//Thread1.Thread001();

//ThreadPool1.ThreadPool001(); 

//await Task1.Task001();

//await awaitAsync.awaitAsync001();

//Parallel1.Parallel001();

//await CancellationToken1.CancellationToken001();
//;
//ManualResetEvent1.ManualResetEvent001();

//await SemaphoreSlim1.SemaphoreSlim001();

//Monitor1.Monitor001();

//Mutex1.Mutex001();

Interlocked1.Interlocked1001();

